package 二叉树的递归遍历.前序遍历;


import java.util.ArrayList;
import java.util.List;

public class Solution1 {
    List<Integer> list = new ArrayList<>();

    public List<Integer> preorderTraversal(TreeNode root) {
        // 写递归一般有三个步骤。
        // 1.确定递归函数的参数和返回值
        // 2.确定递归的终止条件
        // 3.确定单层递归里面需要实现的逻辑

        // 树的先根遍历 ① 参数：TreeNode 返回值: List<Integer> ② TreeNode == null ③ 在List集合中添加当前节点值信息,遍历左子树,遍历右子树
        if (root != null) {
            // 前序遍历是：根 -> 左 -> 右
            list.add(root.val);
            preorderTraversal(root.left);
            preorderTraversal(root.right);
        }
        return list;
    }
}
